package nbranch.tree.maxdepth;

import nbranch.tree.perorder.Node;

/**
 * @Date 2020/03/16
 * @author 王光浩
 * @Thinking 使用自顶向下的递归
 * @Analysis 时间复杂度O（n），空间复杂度O（n），h为树的最大高度
 */
public class MyMethodOne {
	private int max=0;
	public int maxDepth(Node root) {
		if(root==null)return max;
		recursively(root,0);
        return max;
    }
	private void recursively(Node root,int level) {
		level++;
		if(root.children!=null && !root.children.isEmpty())
			for(Node tem:root.children) {
				recursively(tem,level);
			}
		else
			max=max>level?max:level;
	}
}
